#!/bin/bash

opt+="-A1 "  # A1风格 --style=allman
opt+="-s4 "  # 缩进4个空格 等同于 --indent=spaces=4
opt+="-xW "  # 缩进预处理块 --indent-preproc-block
opt+="-p "   # 关键字后插入空格 --pad-oper
opt+="-H "   # 条件语句空格填充 --pad-header
opt+="-U "   # 删除括号内外额外空格 --unpad-paren
opt+="-k1 "  # 指针运算符靠近类型 等同于 --align-pointer=type
opt+="-z2 "  # 行结束符合使用linux风格 等同于 --lineend=linux
opt+="-c "   # tab键转换成空格键 同于 --convert-tabs
opt+="-n "   # 不保留原始数据备份 等同于 --suffix=none
opt+="-o "   # 不要中断一行语句 --keep-one-line-statements
opt+="-xV "  # 将“do-while”语句的右“while”附加到右大括号
opt+="-Y "   # 缩进“switch”块
opt+="-Y "   # 注释缩进
#opt+="-f "  # 条件语句空行填充 在标题块周围填充空行 --break-blocks 
#opt+="-xg " # 逗号空格填充 --pad-comma
opt+="-j "   # 在无空格的单行条件语句中添加大括号 --add-braces
opt+="-xe "  # 删除多余空行 --delete-empty-lines

function main()
{
    echo "opt : ${opt}"
    dest=$1
    if [ -f ${dest} ]; then
        astyle $opt $dest
    else
        filelist=`find $dest -type f -name "*.c" -or -name "*.h"`
        for file in $filelist
        do
            astyle $opt $file
        done
    fi
}

main $@
